// 自动帮我们创建页面组件
const fs = require('fs')

const pages = [
  { departments: '组织架构' },
  { employees: '员工' },
  { setting: '公司设置' },
  { salarys: '工资' },
  { social: '社保' },
  { attendances: '考勤' },
  { approvals: '审批' },
  { permission: '权限管理' }
]

const dir = 'src/router/modules'
// 创建src/router/modules文件夹
fs.mkdirSync(dir)

const icons = [
  {
    dashboard: 'dashboard'
  },
  {
    departments: 'tree'
  },
  {
    employees: 'people'
  },
  {
    setting: 'setting'
  },
  {
    salarys: 'money'
  },
  {
    social: 'table'
  },
  {
    attendances: 'skill'
  },
  {
    approvals: 'tree-table'
  },
  {
    permission: 'lock'
  }
]

// 遍历数组
for (const item of pages) {
  const name = Object.keys(item)[0]
  //   item -> { departments: '组织架构' }
  fs.writeFileSync(
    `${dir}/${name}.js`,
    `// 导出属于员工的路由规则
  import Layout from '@/layout'
  //  {  path: '', component: '' }
  // 每个子模块 其实 都是外层是layout  组件位于layout的二级路由里面
  export default {
    path: '/${name}', // 路径
    name: '${name}', // 给路由规则加一个name
    component: Layout, // 组件
    // 配置二级路的路由表
    children: [{
      path: '', // 这里当二级路由的path什么都不写的时候 表示该路由为当前二级路由的默认路由
      component: () => import('@/views/${name}'),
      // 路由元信息  其实就是存储数据的对象 我们可以在这里放置一些信息
      meta: {
        title: '${
  Object.values(item)[0]
}', // meta属性的里面的属性 随意定义 但是这里为什么要用title呢， 因为左侧导航会读取我们的路由里的meta里面的title作为显示菜单名称
        icon: '${icons.find((i) => i[name])[name]}',
      }
    }]
  }
  `
  )
}
